package com.cskaoyan.javase.array._5variable;

/**
 * [修饰符列表] 返回值类型 方法名 (形式参数列表,数据类型... 变量名){
 *       // 方法体
 * }
 * 可变参数的注意事项:
 *      1.可变参数的书写形式,一般建议"数据类型...",三个点紧跟数据类型,然后和后面的变量名之间加一个空格.
 *      2.一个方法最多有一个可变参数,而且必须放在形参列表的最后面!!
 *      3.可变参数的方法也是可以发生方法重载的:
 *          a.如果有确定参数的方法能够恰好匹配,优先匹配确定参数个数的方法(就近原则)
 *          b.一旦可变参数的方法和可变参数的方法构成方法重载,
 *              要保持小心,因为很容易导致,两个方法都不能调用了.
 *              所以一般建议不要让可变参数方法和可变参数方法组成方法重载!
 *
 *
 * @since 15:41
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // test(1, 1);
        // Ambiguous method call: both 'Demo2.test(int...)' and 'Demo2.test(int, int...)' match
        // test(1,2,3);
    }

    // 1
    public static void test(int... a) {
    }

    // 2
    public static void test(int a, int b) {
    }

    // 3
    public static void test(int b, int... a) {
    }
}
